import api from '../index'

// 定义 Opus 接口
export interface Opus {
  opusId: number
  opusName: string
  opusNameEn: string
  opusDescription: string
  opusDescriptionEn: string
  themeId?: number // 接收大赛id
  themeName?: string // 大赛名称
  schoolName?: string// 学校名称
  themeTitle?: string// 大赛类型
  schoolId?: number
  userId?: number//  用户id
  phonenumber?: string// 手机号
  nickName?: string// 昵称
  status?: number// 状态
  totalLikes?: number// 点赞总数
  pageView?: number// 总浏览量
  imagePhoto?: string// 形象照
  email?: string// 形象照
  opusUrl?: string // 作品图片URL
}

export default {
  /**
   * 获取作品列表
   * @param data - 查询参数
   * @param data.opusName - 可选，作品名称模糊查询
   * @param data.page - 可选，页码
   * @param data.size - 可选，每页数量
   * @returns 作品列表
   */
  list: (data: { opusName?: string, nickName?: string, themeName?: string, themeTitle?: string, phonenumber?: string, page?: number, size?: number }) => api.get(`/system/opus/list`, {
    params: {
      opusName: data.opusName,
      nickName: data.nickName,
      themeName: data.themeName,
      themeTitle: data.themeTitle,
      pageSize: data.size,
      pageNum: data.page,
      phonenumber: data.phonenumber,
    },
  }),
  /**
   * 获取作品设计师列表（根据昵称或学校名称筛选）
   *
   * @param data - 查询参数对象
   * @param data.nickName - 可选，用户昵称，用于模糊查询设计师
   * @param data.schoolName - 可选，学校名称，用于筛选所属学校的设计师
   * @param data.userId - 可选，用户ID，用于精确查询特定设计师
   * @returns 设计师列表数据，通常用于作品管理或设计师筛选场景
   */
  designerlist: (data: { nickName?: string, schoolName?: string, userId?: number, phonenumber?: string }) => api.get(`/system/opus/designerlist`, {
    params: {
      nickName: data.nickName,
      schoolName: data.schoolName,
      phonenumber: data.phonenumber,
    },
  }),
  /**
   * 获取作品详情
   * @param id - 作品ID
   * @returns 作品详情
   */
  detail: (id: number | string) => api.get<Opus>(`/system/opus/getInfo`, {
    params: {
      opusId: id,
    },
  }),
  /**
   * 创建作品
   * @param data - 作品数据
   * @returns 创建结果
   */
  create: (data: Opus) => api.post('/system/opus/add', data, {
  }),
  /**
   * 编辑作品
   * @param data - 作品数据
   * @returns 编辑结果
   */
  edit: (data: Opus) => api.post('/system/opus/edit', data, {
  }),
  /**
   * 删除作品
   * @param id - 作品ID
   * @returns 删除结果
   */
  delete: (id: number | string) => api.get(`/system/opus/del`, {
    params: {
      opusId: id,
    },
  }),
  /**
   * 移除作品
   * @param id - 作品ID
   * @returns 删除结果
   */
  del: (id: number | string) => api.get(`/system/opus/del`, {
    params: {
      opusId: id,
    },
  }),
  /**
   * 上传头像
   * @param file - 上传的文件
   * @returns 上传结果
   */
  uploadAvatar: (file: any) => api.post(`/common/uploadAvatar`, file, {
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  }),

}
